//
//  283_移动零.swift
//  Swift-LeetCode
//
//  Created by 卢悦明 on 2024/3/14.
/**
 https://leetcode.cn/problems/move-zeroes/description/
 给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
 请注意 ，必须在不复制数组的情况下原地对数组进行操作。

 示例 1:

 输入: nums = [0,1,0,3,12]
 输出: [1,3,12,0,0]
 示例 2:

 输入: nums = [0]
 输出: [0]

 */

import UIKit

class MoveLing: NSObject {
    func QA() {
        var array = [0,1,0,3,12]
        moveZeroes(&array)
        print(array)
    }
    func moveZeroes(_ nums: inout [Int]) {
        var current = 0
        for (i, item) in nums.enumerated() {
            if item != 0 {
                nums.swapAt(current, i)
                current += 1
            }
        }
    }
}
